package com.talos.ums.service.useracounttype;

import com.talos.framework.common.pojo.PageResult;
import com.talos.ums.controller.admin.useracounttype.vo.UmsUserAcountTypePageReqVO;
import com.talos.ums.controller.admin.useracounttype.vo.UmsUserAcountTypeSaveReqVO;
import com.talos.ums.dal.dataobject.useracounttype.UmsUserAcountTypeDO;
import jakarta.validation.Valid;

/**
 * 账号类型 Service 接口
 *
 * @author ${table.author}
 */
public interface UmsUserAcountTypeService {

    /**
     * 创建账号类型
     *
     * @param createReqVO 创建信息
     * @return 编号
     */
    Long createUserAcountType(@Valid UmsUserAcountTypeSaveReqVO createReqVO);

    /**
     * 更新账号类型
     *
     * @param updateReqVO 更新信息
     */
    void updateUserAcountType(@Valid UmsUserAcountTypeSaveReqVO updateReqVO);

    /**
     * 删除账号类型
     *
     * @param id 编号
     */
    void deleteUserAcountType(Long id);

    /**
     * 获得账号类型
     *
     * @param id 编号
     * @return 账号类型
     */
    UmsUserAcountTypeDO getUserAcountType(Long id);

    /**
     * 获得账号类型分页
     *
     * @param pageReqVO 分页查询
     * @return 账号类型分页
     */
    PageResult<UmsUserAcountTypeDO> getUserAcountTypePage(UmsUserAcountTypePageReqVO pageReqVO);

}
